package cn.sc.summer.mybatis.table.execute;

import cn.sc.summer.mybatis.model.DataSourceX;
import cn.sc.summer.mybatis.strategy.basestage.Comparison;
import cn.sc.summer.mybatis.strategy.basestage.Event;
import cn.sc.summer.mybatis.strategy.basestage.SqlUtil;
import cn.sc.summer.mybatis.table.base.SuperTable;

/**
 * 接口：执行接口
 *
 * @author a-xin
 * @date 2024/8/29 12:36
 */
public interface Execute extends SuperTable {

    /**
     * 执行数据源表信息更新
     *
     * @param dataSourceX 数据源信息
     * @param comparison  对比信息
     * @param event       执行事件
     * @param sqlUtil     sql解析工具类
     */
    void executeTable(DataSourceX dataSourceX, Comparison comparison, Event event, SqlUtil sqlUtil);

    /**
     * 执行数据源表字段信息更新
     *
     * @param dataSourceX 数据源信息
     * @param comparison  对比信息
     * @param event       执行事件
     * @param sqlUtil     sql解析工具类
     */
    void executeColumn(DataSourceX dataSourceX, Comparison comparison, Event event, SqlUtil sqlUtil);

}
